home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / c64-preservation-project / apps / koalapad_programmers_toolkit_s1[koala_technologies_1984].nbz / examples (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  17.4 KB  |  635 lines

  1. 10 REM            EXAMPLES
  2. 11 :
  3. 980 REM AFTER DISPLAYING MAIN MENU IN BANK 3, RESTORE YOUR TEXT AND GRAPHICS
  4. 981 REM TO BANK 0
  5. 985 POKE 53265,PEEK(53265)AND239:REM BLANK SCREEN
  6. 990 POKE 56578,PEEK(56578)OR3:REM SET CIA TO OUTPUT
  7. 991 POKE56576,(PEEK(56576)AND252)OR3:REM SWITCH TO BANK 0
  8. 993 POKE53272,(PEEK(53272)AND15)OR16:REM SET START OF TEXT SCREEN/COLOR MEMORY
  9. 994 POKE53272,(PEEK(53272)AND240)OR4:REM SET START OF BIT MAP
  10. 996 POKE53265,PEEK(53265)AND223:REM TURN OFF BIT MAP MODE
  11. 997 POKE53270,PEEK(53270)AND239:REM TURN OFF MULTICOLOR MODE
  12. 998 POKE 49191,3:POKE49194,4:POKE49195,16:REM SET NEW START ADDRESSES
  13. 1000 REM*********************************
  14. 1002 REM             EXAMPLES
  15. 1004 REM*********************************
  16. 1006 REM
  17. 1008 CLR
  18. 1010 GOSUB 21200:REM SET UP VARIABLES
  19. 1020 POKE LO,1:POKE LE,1 :REM LOCK CURSOR AND SET SMOOTHING LEVEL:POKE SN,0
  20. 1025 POKE S1,6:POKES2,6:POKEM1,255:POKE M2,255
  21. 1030 POKE CB,13:POKE CS,12
  22. 1040 PRINTCHR$(144);:REM BLACK LETTERS
  23. 1050 PRINTCHR$(147):PRINT"       APPLICATIONS AND EXAMPLES":PRINT:PRINT
  24. 1055 POKE53265,PEEK(53265)OR16:REM TURN ON SCREEN (UNBLANK SCREEN)
  25. 1060 PRINT"              OLD SMOOTHIE":PRINT
  26. 1070 PRINT"              JIM'S IDEA":PRINT
  27. 1090 PRINT"              BAR GRAPH":PRINT
  28. 1100 PRINT"              WIPEOUTS":PRINT
  29. 1110 PRINT"              GRIDMAKER":PRINT
  30. 1120 PRINT"              MAIN MENU"
  31. 1130 PRINT:PRINT:PRINT:PRINT
  32. 1135 PRINT:PRINT:PRINT:PRINT:PRINT"  PRESS LEFT BUTTON TO MAKE SELECTION"
  33. 1400 REM ************MENU***************
  34. 1410 POKE SF,0:SYS SP:POKE SF,2:POKE XS,112:POKE XF,112:POKE H3,0:POKE LE,0
  35. 1420 SYS SM:SYSSP
  36. 1422 IF PEEK(LP)=1THEN SW=1:GOTO1428
  37. 1423 GOSUB 21900:IF SW THEN 1428
  38. 1426 GOTO 1420
  39. 1428 BS=PEEK(YL)
  40. 1435 ON SW GOTO 1440,1420,1440,1020,1020,8000
  41. 1440 IF BS<71 THEN 1420
  42. 1450 IF BS<81 THEN N=1:GOTO 1600
  43. 1460 IF BS<87 THEN 1420
  44. 1470 IF BS<96 THEN N=2:GOTO 1600
  45. 1475 IF BS<102 THEN 1420
  46. 1480 IF BS<112 THEN N=3:GOTO 1600
  47. 1490 IF BS<120 THEN 1420
  48. 1500 IF BS<128 THEN N=4:GOTO 1600
  49. 1510 IF BS<134 THEN 1420
  50. 1520 IF BS<144 THEN N=5:GOTO 1600
  51. 1530 IF BS<150 THEN 1420
  52. 1540 IF BS<160 THEN N=6:GOTO 1600
  53. 1550 IF BS<166 THEN 1420
  54. 1560 GOTO 1420
  55. 1600 POKE SN,0
  56. 1610 ON N GOTO 2000,3000,5000,6000,7000,8000
  57. 1900 GETQQ$:IFQQ$=CHR$(136)THEN1920
  58. 1910 RETURN
  59. 1920 IF HR<>1 THEN 8000
  60. 1930 HR=0:POKE BA,3:POKE SA,16:POKE CA,4:POKECH,96:POKESS,92:POKESN,0:SYSTR
  61. 1935 PRINT"[147]":POKE214,8:PRINT:PRINT"         LOADING MAIN MENU..."
  62. 1940 GOTO 8000
  63. 2000 REM**********************************
  64. 2010 REM*         OLD SMOOTHIE           *
  65. 2020 REM**********************************
  66. 2021 PQ=1
  67. 2030 GOSUB 2100:REM INSTRUCTIONS
  68. 2035 ON SW GOTO 2040,1020,2040,1020,1020,8000
  69. 2040 GOSUB 2200:REM SET LEVEL
  70. 2045 IF BU=1 THEN BU=0:GOTO2030
  71. 2050 REM 2300 DRAW LINES
  72. 2059 POKE BA,3:POKESA,16:POKECA,4:POKESS,92:POKECH,96
  73. 2060 SYS KLRCOL:SYS TR:GOTO 1020
  74. 2100 REM************INSTRUCTIONS****************
  75. 2105 PRINTCHR$(147):PRINT"              OLD SMOOTHIE":PRINT:PRINT
  76. 2110 PRINT" SMOOTHING AVERAGES A SET OF DATA TO"
  77. 2115 PRINT"FORM A NICE CONTINUOUS STREAM OF DATA."
  78. 2120 PRINT"YOU CAN SELECT A LEVEL OF SMOOTHING BY"
  79. 2125 PRINT"SLIDING YOUR FINGER HORIZONTALLY AND"
  80. 2130 PRINT"CLICKING THE LEFT BUTTON.":PRINT
  81. 2135 PRINT" HOLD THE LEFT BUTTON AND DRAW THE "
  82. 2140 PRINT"SMOOTHED LINE.":PRINT
  83. 2145 PRINT" TO CLEAR THE SCREEN AND SET A NEW"
  84. 2150 PRINT"LEVEL OF SMOOTHING, CLICK THE RIGHT "
  85. 2155 PRINT"BUTTON.":PRINT
  86. 2160 PRINT" A SMOOTHING LEVEL OF 2 SEEMS GOOD "
  87. 2165 PRINT"FOR MOST APPLICATIONS. LEVELS 5 & 6 ARE"
  88. 2170 PRINT"USEFUL WHEN EXTREMELY SMOOTH CURVES ARE"
  89. 2175 PRINT"NEEDED AND A DRAWING LAG IS ACCEPTABLE.":PRINT:PRINT
  90. 2180 PRINT" CLICK THE LEFT BUTTON TO CONTINUE"
  91. 2185 GOSUB 21900:IF SW=0 THEN 2185
  92. 2186 PRINTCHR$(147)
  93. 2190 RETURN
  94. 2200 REM***********SET LEVEL************
  95. 2205 POKE SN,0
  96. 2210 PRINTCHR$(147):PRINT"              OLD SMOOTHIE":PRINT:PRINT
  97. 2220 PRINT"      SLIDE YOUR FINGER ACROSS THE ":PRINT
  98. 2225 PRINT"    TABLET AND CLICK THE LEFT BUTTON":PRINT
  99. 2230 PRINT"     TO SET THE LEVEL OF SMOOTHING.":PRINT:PRINT
  100. 2235 PRINT"            SMOOTHING LEVEL":PRINT
  101. 2240 POKE XS,0:POKE XF,6:POKE H1,0:POKE H3,0
  102. 2245 :
  103. 2250 SYS SM:SYS SC
  104. 2255 IF PEEK(RP)=1 THEN BU=1:RETURN
  105. 2256 GOSUB 1900
  106. 2260 PRINT,"              "
  107. 2261 IF((PEEK(RX)<8)AND(PEEK(RY)<8)) THEN POKE XN,PQ
  108. 2265 PRINT"[145]","        ";PEEK(XN);"[145]"
  109. 2266 PQ=PEEK(XN)
  110. 2270 IF PEEK(LP)=0 THEN 2250
  111. 2280 POKE LE,PEEK(XN):REM SET SMOOTHING LEVEL
  112. 2285 PQ=PEEK(XN)
  113. 2290 PRINTCHR$(147)
  114. 2300 REM*********DRAW SMOOTH LINES*******
  115. 2305 REM SET UP AND CLEAR THE GRAPHICS SCREEN; COLOR BLACK; XOR OFF;
  116. 2306 REM MULTICOLOR OFF; SPRITE FLAG 0 TO TRANSFER SPRITE DATA ONCE
  117. 2309 POKE BA,2:POKESA,112:POKECA,8:POKE CH,96:POKE SS,92:REM SCREEN LOCATIONS
  118. 2310 SYS KL:SYS TU:SYS SE:POKE LO,1:POKE CO,0:POKE XR,0:POKE MC,1:POKESF,0
  119. 2315 POKEBA,2:POKESS,92:REM BANK 2
  120. 2320 POKE SN,1:SYS SP:SYS SE:REM ENABLE SPRITE; SET SCALING FOR GRAPHICS
  121. 2322 :
  122. 2324 POKE BA,3:POKESA,16:POKECA,4:POKESS,92:POKECH,96
  123. 2325 IF PEEK(RP)=1 THEN SYS TR:GOTO 2200
  124. 2326 HR=1:GOSUB1900
  125. 2330 IF PEEK(B1)=0 THEN 2320
  126. 2331 HR=1:GOSUB1900
  127. 2332 :
  128. 2335 POKE SN,0:SYS SC:POKE X1,PEEK(XN):POKE Y1,PEEK(YN):REM SET 1ST ENDPOINT
  129. 2340 SYS SM
  130. 2342 IF PEEK(RP)=1 THEN SYS TR:GOTO2200
  131. 2344 IF PEEK(B1)=0 THEN 2320
  132. 2345 HR=1:GOSUB1900
  133. 2346 SYS SC
  134. 2350 POKE X2,PEEK(XN):POKE Y2,PEEK(YN)
  135. 2355 SYS LI
  136. 2360 POKE X1,PEEK(X2):POKE Y1,PEEK(Y2)
  137. 2362 IF PEEK(B1)=0 THEN 2320
  138. 2375 GOTO 2340
  139. 2380 STOP
  140. 3000 REM********************************
  141. 3005 REM              JIM'S IDEA
  142. 3010 REM********************************
  143. 3020 GOSUB 3100:REM INSTRUCTIONS
  144. 3025 ON SW GOTO 3030,1020,3030,1020,1020,8000
  145. 3030 GOSUB 3200:REM BOX#1
  146. 3040 REM 3300 BOX#2
  147. 3050 REM 3400 CONNECTING LINES
  148. 3069 POKE BA,3:POKESA,16:POKECA,4:POKESS,92:POKECH,96
  149. 3070 SYS KLRCOL:POKE BA,3:POKESS,4:SYS TR:POKE SN,0
  150. 3071 IF BU=1 THEN BU=0:GOTO3020
  151. 3072 GOTO 1020
  152. 3100 REM*******************************
  153. 3110 PRINTCHR$(147):PRINT"              SPRITE CURSOR":PRINT:PRINT
  154. 3120 PRINTCHR$(147):PRINT"             JIM'S IDEA    ":PRINT:PRINT
  155. 3130 PRINT" THIS EXAMPLE SHOWS HOW YOU CAN USE"
  156. 3135 PRINT"THE GRAPHIC TOOLS TO CREATE SOME"
  157. 3140 PRINT"CLEVER GRAPHICS APPLICATIONS.":PRINT
  158. 3145 PRINT" DRAW A BOX USING THE FOLLOWING STEPS:":PRINT
  159. 3150 PRINT"  1) POINT AT UPPER LEFT CORNER;"
  160. 3155 PRINT"  2) CLICK THE LEFT BUTTON;"
  161. 3160 PRINT"  3) POINT AT LOWER RIGHT CORNER;"
  162. 3165 PRINT"  4) CLICK THE LEFT BUTTON.":PRINT
  163. 3170 PRINT" NOW MAKE A SECOND BOX THE SAME WAY AND"
  164. 3175 PRINT"AND WATCH WHAT HAPPENS AS YOU  FORM "
  165. 3180 PRINT"THE SQUARE. YOU CAN CREATE MANY UNIQUE"
  166. 3185 PRINT"EFFECTS. YOU CAN USE THIS ROUTINE IN"
  167. 3190 PRINT"YOUR OWN PROGRAMS!!!":PRINT
  168. 3195 PRINT:PRINT" CLICK THE LEFT BUTTON TO BEGIN"
  169. 3196 GOSUB 21900:IF SW=0 THEN 3196
  170. 3197 RETURN
  171. 3200 REM***********BOX #1***************
  172. 3205 PRINTCHR$(147)
  173. 3209 POKE BA,2:POKESA,112:POKECA,8:POKE CH,96:POKE SS,92:REM SCREEN LOCATIONS
  174. 3210 POKE MC,1:POKE CO,0:POKE XR,1:POKE SF,0:POKE LE,0:SYS KL:SYS TU
  175. 3215 POKE BA,2:POKE SS,92
  176. 3220 SYS SP
  177. 3221 HR=1:GOSUB1900
  178. 3225 IF PEEK(RP)=1 THEN BU=1:RETURN
  179. 3230 IF PEEK(LP)=0 THEN 3220
  180. 3235 SYS SE:SYS SC
  181. 3237 X5=PEEK(XN):Y5=PEEK(YN)
  182. 3240 POKE X1,X5:POKE Y1,Y5
  183. 3241 POKE SN,0:POKE LE,0
  184. 3245 SYS SM:SYS SE:SYS SC
  185. 3246 HR=1:GOSUB1900
  186. 3247 X6=PEEK(XN):Y6=PEEK(YN)
  187. 3250 POKE X2,X6:POKE Y2,Y6
  188. 3255 IF PEEK(LP)=1 THEN 3270
  189. 3256 IF PEEK(RP)=1 THEN BU=1:RETURN
  190. 3260 SYS BO:SYS BO
  191. 3265 GOTO 3245
  192. 3270 POKE XR,0:SYS BO
  193. 3300 REM***********BOX #2***************
  194. 3310 POKE XR,1
  195. 3315 POKE SF,0
  196. 3320 SYS SP
  197. 3321 HR=1:GOSUB1900
  198. 3325 IF PEEK(RP)=1 THEN BU=1:RETURN
  199. 3330 IF PEEK(LP)=0 THEN 3320
  200. 3335 SYS SE:SYS SC
  201. 3337 X7=PEEK(XN):Y7=PEEK(YN)
  202. 3340 POKE X1,X7:POKE Y1,Y7
  203. 3341 POKE SN,0:POKE LE,0
  204. 3345 SYS SM:SYS SE:SYS SC
  205. 3346 HR=1:GOSUB1900
  206. 3347 X8=PEEK(XN):Y8=PEEK(YN)
  207. 3350 POKE X2,X8:POKE Y2,Y8
  208. 3355 IF PEEK(LP)=1 THEN GOTO3370
  209. 3356 IF PEEK(RP)=1 THEN BU=1:RETURN
  210. 3360 SYS BO:SYS BO
  211. 3365 GOTO 3345
  212. 3370 POKE XR,0:SYS BO:GOSUB 3400
  213. 3380 POKE SF,0:POKE XR,1:GOTO 3220
  214. 3400 REM**********LINES*****************
  215. 3410 POKE X1,X5:POKE Y1,Y5:POKE X2,X7:POKE Y2,Y7
  216. 3415 SYS LI
  217. 3420 POKE X1,X6:POKE Y1,Y5:POKE X2,X8:POKE Y2,Y7
  218. 3425 SYS LI
  219. 3430 POKE X1,X5:POKE Y1,Y6:POKE X2,X7:POKE Y2,Y8
  220. 3435 SYS LI
  221. 3440 POKE X1,X6:POKE Y1,Y6:POKE X2,X8:POKE Y2,Y8
  222. 3445 SYS LI
  223. 3450 POKE X1,X7:POKEY1,Y7:POKE X2,X8:POKE Y2,Y8
  224. 3460 RETURN
  225. 3500 :
  226. 5000 REM********************************
  227. 5005 REM             BAR GRAPH
  228. 5010 REM********************************
  229. 5020 GOSUB 5100:REM INSTRUCTIONS
  230. 5025 ON SW GOTO 5030,1020,8000,8000,8000,8000
  231. 5030 GOSUB 5200:REM ESTABLISH AXIS
  232. 5040 GOSUB 5300:REM MAKE BOXES
  233. 5050 GOSUB 5400:REM DETECT BARS
  234. 5060 REM 5500 MOVE BARS
  235. 5069 POKE BA,3:POKESA,16:POKECA,4:POKESS,92:POKECH,96
  236. 5070 SYS KLRCOL:SYS TR:POKE CO,0
  237. 5080 IF PEEK(B2)=1 THEN 5020
  238. 5090 GOTO 1020
  239. 5100 REM************INSTRUCTIONS****************
  240. 5102 POKE SN,0
  241. 5105 PRINTCHR$(147):PRINT"               BAR GRAPH":PRINT:PRINT
  242. 5110 PRINT" THIS EXAMPLE SHOWS YOU HOW YOU CAN USE"
  243. 5115 PRINT"THE PAD AS AN AID IN BUSINESS"
  244. 5120 PRINT"APPLICATIONS. THE ROUTINE CREATES AN"
  245. 5125 PRINT"AXIS ON WHICH YOU CAN RAISE OR LOWER"
  246. 5130 PRINT"A SET OF BARS.":PRINT
  247. 5135 PRINT" TO CREATE BARS, FIRST POINT AT THE BLUE";
  248. 5140 PRINT"AREA AND HOLD THE LEFT BUTTON. THEN"
  249. 5145 PRINT"DRAG YOUR FINGER AROUND THE PAD AND"
  250. 5150 PRINT"RELEASE THE BUTTON TO FIX THE BAR.":PRINT
  251. 5155 PRINT" TO CHANGE THE HEIGHT OF A BAR, YOU CAN"
  252. 5160 PRINT"POINT AT THE END, PRESS THE LEFT BUTTON"
  253. 5165 PRINT"AND DRAG IT TO A NEW HEIGHT.":PRINT
  254. 5170 PRINT:PRINT:PRINT:PRINT
  255. 5175 PRINT" CLICK THE LEFT BUTTON  TO CONTINUE"
  256. 5180 GOSUB 21900:IF SW=0 THEN 5180
  257. 5190 RETURN
  258. 5199 :
  259. 5200 REM******CREATE AXIS***************
  260. 5205 PRINTCHR$(147)
  261. 5210 POKE MC,1:POKE CO,0:POKE XR,0
  262. 5219 POKE BA,2:POKESA,112:POKECA,8:POKE CH,96:POKE SS,92:REM SCREEN LOCATIONS
  263. 5220 SYS KL:SYS TU
  264. 5230 POKE Y1,10:POKE Y2,190
  265. 5240 FOR X3=18 TO 20
  266. 5250 POKE X1,X3:POKE X2,X3
  267. 5260 SYS LI
  268. 5270 POKE X1,18:POKE X2,140
  269. 5275 FOR Y3=120 TO 121
  270. 5280 POKE Y1,Y3:POKE Y2,Y3
  271. 5285 SYS LI
  272. 5290 NEXT Y3
  273. 5295 RETURN
  274. 5299 :
  275. 5300 REM*******MAKE BLOCKS**************
  276. 5310 POKE CO,6
  277. 5320 FOR X3=30 TO 140 STEP 20
  278. 5330 POKE X1,X3:POKE X2,X3+10
  279. 5340 Y3=120
  280. 5350 POKE Y1,Y3:POKE Y2,Y3
  281. 5360 SYS LI
  282. 5380 NEXT X3
  283. 5390 RETURN
  284. 5399 :
  285. 5400 REM*******DETECT BARS*************
  286. 5404 FOR I=1 TO 6:TM(I)=120:NEXTI
  287. 5405 POKE SK,1:POKE SF,0:POKE BA,2:POKESS,92
  288. 5410 POKE SF,0:SYS SP
  289. 5411 IF PEEK(B2)=1 THEN RETURN
  290. 5412 HR=1:GOSUB1900
  291. 5413 IF PEEK(B1)=0 THEN 5410
  292. 5415 SYS SE:SYS SM:SYS SC
  293. 5420 X5=PEEK(XN):Y5=PEEK(YN)
  294. 5425 FOR I=30 TO 130 STEP 20
  295. 5430 IF(X5>=I)AND(X5<=I+10)THEN 5440
  296. 5433 NEXTI
  297. 5436 GOTO 5410
  298. 5440 I=INT((I-10)/20)
  299. 5445 IF(Y5<TM(I)+4)AND(Y5>TM(I)-4)THEN 5450
  300. 5447 GOTO 5410
  301. 5450 X3=I*20+10:X4=X3+10
  302. 5455 POKE SN,0:POKE LE,0
  303. 5460 POKE X1,X3:POKE X2,X4:POKE Y1,120
  304. 5470 POKE XR,1
  305. 5480 IF TM(I)<>120 THEN POKE Y2,TM(I):SYS BO
  306. 5499 :
  307. 5500 REM********MOVE BARS***************
  308. 5510 SYS SM:SYS SE:SYS SM:SYS SC
  309. 5511 HR=1:GOSUB1900
  310. 5525 IF PEEK(B2)=1 THEN RETURN
  311. 5530 Y3=PEEK(YN):IFY3<20THEN Y3=20
  312. 5535 IF Y3>180THENY3=180
  313. 5540 POKE Y2,Y3
  314. 5556 IF PEEK(B1)=0 THEN 5580
  315. 5560 SYS BO:SYS BO
  316. 5570 GOTO 5510
  317. 5580 SYS BO
  318. 5585 TM(I)=Y3
  319. 5590 (null) TO 5410
  320. 5595 RETURN
  321. 5999 :
  322. 6000 REM******************************
  323. 6005 REM           WIPEOUTS
  324. 6010 REM******************************
  325. 6020 GOSUB 6100:REM INSTRUCTIONS
  326. 6025 ON SW GOTO 6030,1020,6030,1020,1020,8000
  327. 6030 GOSUB 6200:REM LINES
  328. 6035 ON SW GOTO 6069,6069,6040,6069,6069,6069
  329. 6040 REM 6300 BOXES
  330. 6050 REM 6400 CIRCLES
  331. 6069 POKE BA,3:POKESA,16:POKECA,4:POKESS,92:POKECH,96
  332. 6070 POKECS,12:SYS KLRCOL:PRINTCHR$(147):SYS TR:REM INSTRUCTIONS
  333. 6080 ONSW GOTO 1020,6020,6040,6020,1020,1930
  334. 6100 REM*************INSTRUCTIONS***************
  335. 6110 PRINTCHR$(147):PRINT"                WIPEOUTS":PRINT:PRINT
  336. 6115 PRINT" THIS EXAMPLE SHOWS HOW RUBBER BOXES,"
  337. 6120 PRINT"RUBBER LINES, AND RUBBER CIRCLES CAN BE"
  338. 6125 PRINT"USED ON TOP OF A HI-RESOLUTION PICTURE.":PRINT
  339. 6135 PRINT" SO LONG AS YOU DRAW THE SAME OBJECT"
  340. 6140 PRINT"TWICE IN THE SAME PLACE WITH THE "
  341. 6145 PRINT"EXCLUSIVE OR 'XR' FLAG SET TO 1, THEN "
  342. 6150 PRINT"THE BACKGROUND WILL BE RESTORED.":PRINT
  343. 6155 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
  344. 6160 PRINT"                                  ":PRINT
  345. 6165 PRINT"CLICK THE LEFT BUTTON TO CONTINUE"
  346. 6170 GOSUB 21900:IF SW=0 THEN 6170
  347. 6180 RETURN
  348. 6199 :
  349. 6200 REM***********LINES****************
  350. 6201 SYS 65412
  351. 6202 GOSUB 6500:REM TRANSFER MENU PICTURE
  352. 6205 CX=0
  353. 6210 POKE XR,1:POKE MC,1:POKE CO,0
  354. 6215 SYS TU
  355. 6220 POKE Y1,10:POKE Y2,190
  356. 6230 FOR X3=10 TO 150 STEP 10
  357. 6240 GOSUB 21900:IF SW<>0 THEN RETURN
  358. 6250 POKE X1,X3:POKE X2,X3
  359. 6252 SYS LI
  360. 6255 NEXT X3
  361. 6260 POKE X1,10:POKE X2,150
  362. 6265 FOR Y3=10 TO 190 STEP 10
  363. 6268 GOSUB 21900:IF SW<>0 THEN RETURN
  364. 6270 POKE Y1,Y3:POKE Y2,Y3
  365. 6272 SYS LI
  366. 6275 NEXT Y3
  367. 6280 IF CX=0 THEN CX=1:GOTO6220
  368. 6285 GOTO 6300
  369. 6299 :
  370. 6300 REM*********BOXES*****************
  371. 6305 CX=0
  372. 6310 Y3=30:X4=150:Y4=170
  373. 6320 FOR X3=10TO75 STEP5
  374. 6325 GOSUB 21900:IF SW<>0 THEN RETURN
  375. 6330 POKE X1,X3:POKE X2,X4
  376. 6340 POKE Y1,Y3:POKE Y2,Y4
  377. 6345 SYS BO
  378. 6350 Y3=Y3+5:X4=X4-5:Y4=Y4-5
  379. 6360 NEXT X3
  380. 6370 IF CX=0 THEN CX=1:GOTO 6310
  381. 6380 GOTO 6400
  382. 6399 :
  383. 6400 REM***********CIRCLES**************
  384. 6410 CX=0
  385. 6420 POKE X1,80:POKE Y1,100
  386. 6430 FOR RR=5 TO 75 STEP 5
  387. 6435 GOSUB 21900:IF SW<>0 THEN RETURN
  388. 6440 POKE RE,RR
  389. 6450 SYS CI
  390. 6460 NEXT RR
  391. 6470 IF CX=0 THEN CX=1:GOTO 6430
  392. 6480 GOTO 6205
  393. 6500 :
  394. 6510 POKE 53265,PEEK(53265)AND239:REM BLANK SCREEN
  395. 6520 POKE 251,40:POKE 252,131:POKE 253,0:POKE 254,216:REM COLOR RAM ADDRESSES
  396. 6530 POKE 49235,16:POKE 49236,135:POKE53281,0:REM LAST SOURCE ADDRESS
  397. 6540 SYS 49397 :REM COPYIT-COPIES 33576-34575 TO 55296-56295
  398. 6545 :
  399. 6550 :
  400. 6560 POKE 251,0:POKE 252,204:POKE 253,0:POKE 254,92:REM COLOR SCREEN ADDRESSES
  401. 6570 POKE 49235,232:POKE 49236,207:REM LAST SOURCE ADDRESS
  402. 6580 SYS 49397 :REM COPYIT-COPIES 52224-53223 TO 23552-24551
  403. 6590 :
  404. 6600 FOR G1=51712 TO 51743:REM READ IN ASSEMBLY PROGRAM
  405. 6610 READ G2:POKE G1,G2:REM READ DATA
  406. 6620 NEXT G1
  407. 6630 POKE 251,0:POKE 252,224:POKE 253,0:POKE 254,96:REM BIT MAP ADDRESSES
  408. 6640 POKE 49235,63:POKE 49236,255:REM LAST SOURCE ADDRESS
  409. 6650 SYS 51712:REM ASSEMBLY PROGRAM COPIES BIT MAP UNDER KERNAL
  410. 6651 I7=255:I8=1:REM LINES 6651-6656 FIXES PICTURE BIT MAP
  411. 6652 FORI9=32048TO32079
  412. 6653 POKEI9,I7:I8=I8+1:IFI8=5THENI7=0
  413. 6654 IFI8=9THENI7=255:I8=1
  414. 6655 IFI9=32071THENI7=240
  415. 6656 NEXTI9
  416. 6660 RESTORE:REM RESTORE DATA
  417. 6665 POKE BA,2:POKESA,112:POKECA,8:POKE CH,96:POKE SS,92:REM SCREEN LOCATIONS
  418. 6670 POKE 53265,PEEK(53265)OR16:REM RESTORE SCREEN
  419. 6680 RETURN
  420. 6800 :
  421. 6810 REM DATA FOR ASSEMBLY PROGRAM
  422. 6820 REM PROGRAM - 1) TURNS OFF INTERRUPTS
  423. 6830 REM  2) SWAPS OUT KERNAL AND SWAPS IN PICTURE BIT MAP
  424. 6840 REM  3) COPIES BIT MAP FROM $E000 TO $6000
  425. 6850 REM  4) SWAPS IN KERNAL AND TURNS ON INTERRUPTS
  426. 6860 :
  427. 6870 DATA 173,14,220,41,254,141,14,220
  428. 6880 DATA 165,1,41,253,133,1,32,245,192,165,1,9,2,133,1
  429. 6885 :
  430. 6890 DATA 173,14,220,9,1,141,14,220,96
  431. 6999 :
  432. 7000 REM********************************
  433. 7002 REM           GRIDMAKER
  434. 7004 REM********************************
  435. 7010 GOSUB 7100:REM SETUPS
  436. 7020 GOSUB 7200:REM INSTRUCTIONS
  437. 7025 ON SW GOTO 7030,1020,7030,1020,1020,8000
  438. 7030 GOSUB 7300:REM PICK COLUMNS,ROWS
  439. 7035 IF BU=1 THENBU=0:GOTO7000
  440. 7040 GOSUB 7400:REM PLOT BOX
  441. 7045 IF BU=1 THENBU=0:GOTO7030
  442. 7050 GOSUB 7500:REM CALCULATE AND PLOT GRID
  443. 7055 IF BU=1 THEN BU=0:GOTO7040
  444. 7060 GOSUB 7600:REM SELECT & FILL BOX
  445. 7064 POKE BA,3:POKESA,16:POKECA,4:POKESS,92:POKECH,96
  446. 7065 IF BU=1 THENBU=0:SYS KLR:SYS TR:POKE CO,0:POKE SN,0:GOTO 7030
  447. 7070 SYS KLRCOL:SYS TR:POKE CO,0
  448. 7080 GOTO 1020
  449. 7100 REM***********SET UPS**************
  450. 7190 RETURN
  451. 7200 REM**************INSTRUCTIONS**************
  452. 7205 PRINTCHR$(147):PRINT"               GRIDMAKER":PRINT
  453. 7210 PRINT" THIS EXAMPLE CREATES A GRID WHICH CAN"
  454. 7215 PRINT"BE USED AS A HI-RES MENU OR AS A DESIGN"
  455. 7220 PRINT"AID FOR OVERLAYS. THE GRID CAN BE ANY"
  456. 7225 PRINT"SIZE AND CAN BE ANYWHERE ON THE SCREEN.":PRINT
  457. 7230 PRINT" IN THIS DEMONSTRATION, YOU START BY"
  458. 7235 PRINT"CHOOSING THE NUMBER OF ROWS & COLUMNS.":PRINT
  459. 7240 PRINT" NEXT, YOU DRAW A BOX. FIRST POINT TO "
  460. 7245 PRINT"A CORNER, AND CLICK THE LEFT BUTTON."
  461. 7250 PRINT"THEN POINT TO THE OPPOSITE CORNER,"
  462. 7255 PRINT"AND CLICK THE BUTTON. THE GRID WILL BE"
  463. 7260 PRINT"DRAWN AUTOMATICALLY!!!":PRINT
  464. 7265 PRINT" THEN POINT TO ANY CELL AND CLICK THE"
  465. 7270 PRINT"LEFT BUTTON. IT FILLS WITH COLOR AND"
  466. 7280 PRINT"CREATES A CELL NUMBER WHICH CAN BE USED"
  467. 7285 PRINT"IN AN 'ON CN GOTO' STATEMENT.":PRINT:PRINT
  468. 7290 PRINT" CLICK THE LEFT BUTTON TO CONTINUE"
  469. 7295 GOSUB 21900
  470. 7296 IF SW=0 THEN 7295
  471. 7297 RETURN
  472. 7299 :
  473. 7300 REM*******PICK COLS, ROWS   *******
  474. 7310 PRINTCHR$(147):PRINT"               GRIDMAKER":PRINT:PRINT:PRINT
  475. 7315 PRINT" SLIDE YOUR FINGER ACROSS THE TABLET "
  476. 7320 PRINT"AND CLICK THE LEFT BUTTON TO SELECT THE"
  477. 7325 PRINT"NUMBER OF COLUMNS":PRINT:PRINT:PRINT
  478. 7330 PRINT" SLIDE YOUR FINGER DOWN THE TABLET"
  479. 7335 PRINT"AND CLICK THE LEFT BUTTON TO SELECT THE"
  480. 7340 PRINT"NUMBER OF ROWS":PRINT:PRINT:PRINT
  481. 7345 PRINT" CONTINUE TO THE NEXT SCREEN TO CREATE"
  482. 7350 PRINT"THE GRID OUTLINE.":PRINT:PRINT:PRINT:PRINT
  483. 7355 PRINT"                              ":PRINT"[145][145][145][145][145][145][145][145][145][145][145][145][145][145][145][145]"
  484. 7360 CC=0:RR=0:POKE LO,1
  485. 7365 POKE XS,1:POKE XF,20:POKE YS,1:POKE YF,20
  486. 7366 POKE H1,0:POKE H2,0:POKE H3,0:POKE H4,0
  487. 7370 SYS SM:SYS SC
  488. 7371 QC=PEEK(XN):IFQC=0 THENQC=1
  489. 7375 PRINT,"           [157][157][157][157]";QC:PRINT"[145][145]"
  490. 7376 IFPEEK(RP)=1  THEN BU=1:RETURN
  491. 7380 IF PEEK(LP)=1 THEN 7383
  492. 7381 GOSUB 21900:ON SW GOTO 7383,7395,7383,7395,1020,8000
  493. 7382 GOTO 7370
  494. 7383 CC=QC:PRINT""
  495. 7384 SYS SM:SYS SC
  496. 7385 QR=PEEK(YN):IFQR=0 THENQR=1
  497. 7386 PRINT,"           [157][157][157][157]";QR:PRINT"[145][145]"
  498. 7387 IFPEEK(RP)=1  THEN BU=1:RETURN
  499. 7388 IF PEEK(LP)=1 THEN 7391
  500. 7389 GOSUB 21900:ON SW GOTO 7391,7395,7391,7395,1020,8000
  501. 7390 GOTO 7384
  502. 7391 RR=QR
  503. 7394 RETURN
  504. 7395 BU=1:RETURN
  505. 7399 :
  506. 7400 REM******PLOT BOX AND CALCULATIONS*****
  507. 7405 PRINTCHR$(147):POKE CO,0
  508. 7409 POKE BA,2:POKESA,112:POKECA,8:POKE CH,96:POKE SS,92:REM SCREEN LOCATIONS
  509. 7410 POKE BA,2:POKE SS,92:POKE SF,0:POKE MC,1:POKE XR,1:SYS KL:SYS TU
  510. 7420 SYS SP:IF PEEK(RP)=1THENBU=1:POKESN,0:GOTO7494
  511. 7421 HR=1:GOSUB1900
  512. 7422 IF PEEK(LP)=0 THEN 7420
  513. 7424 SYS SE:SYS SM
  514. 7430 SYS SC:POKE X1,PEEK(XN):POKE Y1,PEEK(YN)
  515. 7435 POKE SN,0
  516. 7440 SYS SP:SYS SE:SYS SM:SYS SC
  517. 7445 HR=1:GOSUB1900
  518. 7450 POKE X2,PEEK(XN):POKE Y2,PEEK(YN)
  519. 7460 SYS BO:SYS BO
  520. 7465 SYS PE:IFPEEK(RP)=1 THENBU=1:POKESN,0:GOTO7494
  521. 7470 IF PEEK(LP)=0 THEN 7440
  522. 7475 POKE XR,0:RETURN
  523. 7485 SYS SP:SYS SM
  524. 7486 HR=1:GOSUB1900
  525. 7490 IF PEEK(RP)=0 THEN 7485
  526. 7494 POKE BA,3:POKESA,16:POKECA,4:POKESS,92:POKECH,96
  527. 7495 SYS TR:POKE BA,3:POKE SS,4
  528. 7496 RETURN
  529. 7499 :
  530. 7500 REM******CALCULATE & CREATE GRID*****
  531. 7505 POKE CO,0
  532. 7510 X3=PEEK(X1):X4=PEEK(X2):Y3=PEEK(Y1):Y4=PEEK(Y2)
  533. 7511 IF X3>X4 THEN W3=X3:X3=X4:X4=W3
  534. 7512 IF Y3>Y4 THEN W4=Y3:Y3=Y4:Y4=W4
  535. 7513 POKE X1,X3:POKE X2,X4:POKE Y1,Y3:POKE Y2,Y4
  536. 7520 DX=X4-X3:KX=INT(DX/CC):X5=X3+KX*CC
  537. 7525 DY=Y4-Y3:KY=INT(DY/RR):Y5=Y3+KY*RR
  538. 7530 POKE X2,X3:POKE Y2,Y5:X6=X3:SYS LI
  539. 7535 FOR IX=1 TO CC
  540. 7536 SYS PE:IF PEEK(RP)=1 THENBU=1:RETURN
  541. 7537 HR=1:GOSUB1900
  542. 7540 X6=X6+KX
  543. 7545 POKE X1,X6:POKE X2,X6
  544. 7550 SYS LI
  545. 7555 NEXT IX
  546. 7560 POKE X1,X3:POKE X2,X5:POKE Y1,Y3:POKE Y2,Y3:Y6=Y3:SYS LI
  547. 7565 FOR IY=1 TO RR
  548. 7566 SYS PE:IF PEEK(RP)=1 THENBU=1:RETURN
  549. 7567 HR=1:GOSUB1900
  550. 7570 Y6=Y6+KY
  551. 7575 POKE Y1,Y6:POKE Y2,Y6
  552. 7580 SYS LI
  553. 7585 NEXT IY
  554. 7595 RETURN
  555. 7599 :
  556. 7600 REM***********FILL BOX*************
  557. 7601 POKE SF,0
  558. 7602 SYS SP:HR=1:GOSUB1900
  559. 7603 IF PEEK(LP)=1 THEN 7606
  560. 7604 IF PEEK(RP)=0  THEN 7602
  561. 7605 BU=1:RETURN
  562. 7606 SYS SE:SYS SM:SYS SC
  563. 7607 POKE SN,0:POKE SF,0
  564. 7610 X7=PEEK(XN):Y7=PEEK(YN)
  565. 7612 IF(X7<X3)OR(X7>=X6) THEN 7602
  566. 7613 IF(Y7<Y3)OR(Y7>=Y6) THEN 7602
  567. 7614 CI=INT((X7-X3)/KX):RI=INT((Y7-Y3)/KY)
  568. 7615 X8=X3+KX*CI:Y8=Y3+KY*RI
  569. 7616 :
  570. 7617 CN=CI+1+RI*CC:REM CELL NUMBER FOR USE IN "ON CN GO TO"
  571. 7618 :
  572. 7620 POKE X1,X8+1:POKE X2,X8+KX-1
  573. 7622 POKE CO,INT(RND(1)*16)
  574. 7623 IF PEEK(CO)=12 THEN 7622
  575. 7625 FOR Y9=Y8+1 TO Y8+KY-1
  576. 7626 HR=1:GOSUB1900
  577. 7627 SYSPE:IFPEEK(RP)=1THENBU=1:RETURN
  578. 7630 POKE Y1,Y9:POKE Y2,Y9
  579. 7635 SYS LI
  580. 7640 NEXT Y9
  581. 7645 GOTO 7602
  582. 8000 REM**********MAIN MENU************
  583. 8001 POKE SN,0
  584. 8005 CLR
  585. 8010 OPEN 2,8,2,"0:SPRITE.UPARROW,S,R"
  586. 8015 CLOSE2
  587. 8020 OPEN 15,8,15
  588. 8025 INPUT#15,A$,B$,C$,D$
  589. 8030 IF VAL(A$)=0 THEN 8080
  590. 8035 PRINT"[147]":PRINT:PRINT:PRINT:PRINT:PRINT:PRINT"            ";B$
  591. 8040 FORI=1TO1000:NEXTI
  592. 8045 GOTO 1000
  593. 8080 CLR
  594. 8085 PRINT"[147]":POKE214,8:PRINT:PRINT"         LOADING MAIN MENU..."
  595. 8090 LOAD"MENU",8
  596. 21000 :
  597. 21200 REM ************SET UPS************
  598. 21202 Z5=45:Z6=46:Z7=47:Z8=48:Z9=49:Z0=50:REM ZERO PAGE BASIC POINTERS
  599. 21203 CBRDER=53280:CSCREEN=53281
  600. 21204 :
  601. 21205 REM ASSEMBLY ROUTINE JUMP ADDRESS NAMES
  602. 21208 TABRAW=49328:DEBOUNCE=49331:FILTER=49334:PERFECT=49337
  603. 21210 SMOOTH=49340:PADLOCK=49343:SCALE=49346:TEXTCR=49349:SPRITE=49352
  604. 21215 PLTDOT=49355:SETSCL=49358:TURNUN=49361:KLRCOL=49364:TRNUFF=49367
  605. 21220 LINE=49382:BOX=49385:RADIUS=49388:CIRCLE=49391
  606. 21222 KOALAPICTURE=49394
  607. 21223 :
  608. 21225 REM VARIABLE NAMES
  609. 21227 RX=49152:RY=49154
  610. 21230 B1=49156:B2=49157:LDBOUNCE=49159:RDBOUNCE=49160:LPRESS=49161:RPRESS=49162
  611. 21231 LX=49163:LY=49164:TX=49165:TY=49166
  612. 21232 FX=49168:FY=49169:UX=49172:UY=49173:ERRUR=49174:M1=49175:M2=49176
  613. 21235 SX=49196:SY=49197:LEVEL=49198:LOCKST=49199
  614. 21238 XH=49186:S1=49187:S2=49188:YH=49190
  615. 21240 XS=49177:YS=49179:XF=49181:YF=49183:XNW=49185:YNW=49189
  616. 21245 H1=49178:H2=49180:H3=49182:H4=49184
  617. 21247 :
  618. 21250 BANKA=49191:SA=49192:CA=49193:SSTART=49194:CH=49195
  619. 21255 SFLAG=49200:SNABLE=53269:SKOLR=53287:XLOSP=53248:XISP=53264:YLOSP=53249
  620. 21256 P1=49201:P2=49202:P3=49203:P4=49204
  621. 21260 MCM=49205:COLR=49206:XR=49208
  622. 21265 X1=49209:X2=49210:Y1=49211:Y2=49212:REDIUS=49213
  623. 21270 RETURN
  624. 21299 :
  625. 21900 REM****CHECK SWITCHES**************
  626. 21905 SW=0
  627. 21910 SYS PE
  628. 21920 IF PEEK(LP)=1 THEN SW=1
  629. 21930 IF PEEK(RP)=1 THEN SW=2
  630. 21935 IFPEEK(198)=0 THEN RETURN
  631. 21940 FORI9=1 TO PEEK(198):GET QQ$:NEXT I9
  632. 21965 IF QQ$=CHR$(136) THEN SW=6
  633. 21970 RETURN
  634. 30000 OPEN15,8,15:PRINT#15,"S0:EXAMPLES":SAVE"EXAMPLES",8
  635.